const express = require("express");
const router = express.Router();
const dao = require("../dao/mysql/CommentDao");
const pager = require("../util/PagerHelper.js");
const moment = require("moment");
router.all("/list.do", async(req, res, next) => {
    let where = "";
    let flag = 0; //控制多条件是否要加and
    if (req.body) {
        console.log("req.body", req.body);
        if (req.body.uid) {
            if (where.trim().length === 0) {
                where += "where ";
            }
            where += `uid = '${req.body.uid}' `;
            flag++;
        }
        if (req.body.pid) {
            if (where.trim().length === 0) {
                where += "where ";
            }
            if (flag > 0) {
                where += " and ";
            }
            where += ` pid = '${req.body.pid}' `;
            flag++;
        }
        if (req.body.ctime) {
            if (where.trim().length === 0) {
                where += "where ";
            }
            if (flag > 0) {
                where += " and ";
            }
            where += ` ctime >= '${req.body.ctime}' `;
            flag++;
        }
        if (req.body.uname) {
            if (where.trim().length === 0) {
                where += "where ";
            }
            if (flag > 0) {
                where += " and ";
            }
            where += ` uname like '%${req.body.uname}%' `;
            flag++;
        }
        if (req.body.pname) {
            if (where.trim().length === 0) {
                where += "where ";
            }
            if (flag > 0) {
                where += " and ";
            }
            where += ` pname like '%${req.body.pname}%' `;
            flag++;
        }
        if (req.body.comment) {
            if (where.trim().length === 0) {
                where += "where ";
            }
            if (flag > 0) {
                where += " and ";
            }
            where += ` comment like '${req.body.comment}' `;
            flag++;
        }
        console.log(where);
    }
    dao
        .getCount(where)
        .then((count) => {
            console.log("count", count);
            pager.setCount(count);
            return dao.findByPage(where);
        })
        .then((data) => {
            console.log("data", data);
            pager.data = data;
            res.json({
                code: 200,
                data: pager,
            });
        })
        .catch((err) => next(err));
});

router.get("/del.do", (req, res, next) => {
    // lodash.remove(books, value => value.id == req.query.id);
    if (req.query.id) {
        dao
            .deleteById(req.query.id)
            .then((data) =>
                res.json({
                    code: 200,
                    msg: "删除成功",
                })
            )
            .catch((err) => next(err));
    } else {
        res.json({
            code: 200,
            msg: "删除失败",
        });
    }
});
router.get("/delBatch.do", (req, res, next) => {
    let idsStr = req.query.ids;
    console.log(idsStr);
    let ids;
    if (Array.isArray(idsStr)) {
        ids = idsStr;
    } else {
        ids = idsStr.split(","); //得到的是一个字符串数组
    }

    dao
        .deleteByIds(ids)
        .then((data) =>
            res.json({
                code: 200,
                msg: "删除成功",
            })
        )
        .catch((err) => next(err));
});

router.get("/edit.do", (req, res, next) => {
    let { id } = req.query;
    if (id) {
        // let editObj = books.find(value => value.id == id);
        dao
            .findById(id)
            .then((editObj) => {
                if (editObj) {
                    res.json({
                        code: 200,
                        data: editObj,
                    });
                } else {
                    res.json({
                        code: 404,
                        msg: "没有找到记录！",
                    });
                }
            })
            .catch((err) => next(err));
    } else {
        res.json({
            code: 404,
            msg: "没有id！",
        });
    }
});
router.post("/save.do", (req, res, next) => {
    let newObj = Object.assign({}, req.body);
    //区分添加还是编辑
    if (newObj.id) {
        //编辑
        // let editObj = books.find(value => value.id == newObj.id);
        // //引用数据类型的特点
        // Object.assign(editObj, newObj);
        newObj.ctime = moment(newObj.ctime).format("YYYY-MM-DD HH:mm:ss");
        dao
            .update(newObj, newObj.id)
            .then((data) =>
                res.json({
                    code: 200,
                    msg: "修改成功",
                })
            )
            .catch((err) => next(err));
    } else {
        //添加
        // // books.pop();删除最后一个元素
        // newObj.id = lodash.last(books).id + 1;
        // //保存到数组中
        // books.push(newObj);
        newObj.id = 0; //id是自动增长，必须是0值
        newObj.ctime = moment(newObj.ctime).format("YYYY-MM-DD HH:mm:ss");
        dao
            .insert(newObj)
            .then((data) =>
                res.json({
                    code: 200,
                    msg: "添加成功",
                })
            )
            .catch((err) => next(err));
    }
});

module.exports = router;